package com.lintf.distributed.transaction.inventory.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lintf.distributed.transaction.inventory.enums.DeadLetterStatus;
import lombok.Data;

import java.util.Date;

@Data
@TableName(value = "t_dead_letter")
public class DeadLetterMessage {
    @TableId(type = IdType.AUTO)
    private Long id;
    
    // 原始消息唯一标识
    private String messageKey;
    
    // 原始主题
    private String originalTopic;
    
    // 消息体
    private String messageBody;
    
    // 失败时间
    private Date failureTime;
    
    // 失败原因摘要
    private String failureReason;
    
    // 完整异常堆栈
    private String exceptionStack;
    
    // 状态
    private DeadLetterStatus status = DeadLetterStatus.NEW;
    
    // 重试次数
    private int retryCount = 0;
    
    // 最大重试次数
    private int retryMax = 5;
    
    // 最后重试时间
    private Date lastRetryTime;
    
    // 通知状态
    private boolean notified = false;
    
    // 创建时间
    private Date createdAt;
    
    // 更新时间
    private Date updatedAt;
}